﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Models;

namespace Helena.Areas.Configuraciones.Models
{
    public class LogicaTarjeta:InterfazLogicaTarjeta
    {
        DBContext Tarjeta_contexto = new DBContext();
        DBGenericQueriesUtil<Tarjeta> Tabla;

        public DBContext context_publico { get { return Tarjeta_contexto; } }

        public LogicaTarjeta()
        {
            Tabla = new DBGenericQueriesUtil<Tarjeta>(Tarjeta_contexto, Tarjeta_contexto.t_Tarjetas);
        }

        public void i_AgregarTarjeta(TarjetaView t_v)
        {
            Tabla.agregarElemento(t_v.deserializa(this));
        }

        public void i_ModificarTarjeta(TarjetaView t_v)
        {
            Tarjeta T = t_v.deserializa(this);
            Tabla.modificarElemento(T, T.ID);
        }

        public void i_EliminarTarjeta(int id) 
        {
            Tabla.eliminarElemento_logico(id);
        }

        public List<TarjetaView> i_RetornarTarjetas() 
        {
            List<Tarjeta> t = Tabla.retornarTodos();
            List<TarjetaView> t_v = new List<TarjetaView>();

            foreach (Tarjeta tarjeta in t) t_v.Add(new TarjetaView(tarjeta));
            return t_v;
        }

        public TarjetaView i_RetornarTarjeta(int id)
        {
            Tarjeta u = Tabla.retornarUnSoloElemento(id);
            TarjetaView u_v = new TarjetaView(u);
            return u_v;
        }
    }
}